/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pluginTable;

import application.IPlugin;
import application.ViewManager;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.Serializable;
import javax.swing.JMenu;

/**
 * cette classe implemete l'interface principal
 * elle ajoute une table par defaut au demarrage de l'application
 * et ajoute le menu fichier dans le JMenuBar 
 * 
 *
 * @author mazid
 */
public class PluginTable implements IPlugin, Serializable{
    private static final long serialVersionUID = 7526691913L;
            
    /* constructeur de la classe. on ajoute une feuille par defaut au lancement 
     * de l'application
     */
    
    public PluginTable(){
        newTable();
    }
    @Override
    public String getName() {
        return "Fichier";
    }

    @Override
    public JMenu getMenu() {
        return new MenuFichier().addMenuFichier();
        
    }

    @Override
    public void addTable() { 
        
        
    }

    // deserialisation
    public void deserialiser(){
        FileInputStream fis = null;
        ObjectInputStream ois = null;
        
        try {
            fis= new FileInputStream("save.txt");
            ois = new ObjectInputStream(fis);
            int tabCount = ois.readInt();
            for(int i=0; i<tabCount; i++){
               ModelTable model = (ModelTable)ois.readObject(); 
               ViewManager.getInstance().displayTable(new Table(model));
            }
            System.out.println("nbtab deserialiser "+tabCount);
        } 
        catch (ClassNotFoundException ex) {
            ex.printStackTrace(System.err);
        } catch (IOException ex) {
            ex.printStackTrace(System.err);
        }
        finally {
            try {
                fis.close();
                ois.close();
            } catch (IOException ex) {
                ex.printStackTrace(System.err);
                
            }
        }
       
    }
    /**
     *
     * @return
     */
    private void newTable(){
        File save = new File("save.txt"); 
        
        if(save.exists()){
            deserialiser();
 
        }else{
            ViewManager.getInstance().displayTable(new Table(new ModelTable()));
        }
  
    }
    
}
